package fr.afcepf.al23.qualite.exception;

/**
 * @author Stagiaire
 */
public class QualiteException extends Exception {
    /**
     * serial version.
     */
    private static final long serialVersionUID = 1L;
    /**
     * Enumeration des codes d'erreurs.
     */
    public static enum ErrorCode {
        /**
         * lors de l'enregistrement de l'utilisateur.
         */
        MAIL_EXISTE,
        /**
         * lors du passage de la commande.
         */
        COMMANDE_INVALIDE
    };
    /**
     * code erreur de l'exception.
     */
    private ErrorCode code;
    /**
     * @return the code
     */
    public ErrorCode getCode() {
        return code;
    }

    /**
     * @param paramCode the code to set
     */
    public void setCode(ErrorCode paramCode) {
        code = paramCode;
    }

    /**
     * Default Constructor.
     */
    public QualiteException() {
        super();
    }

    /**
     * @param paramMessage Un message
     * @param paramCause Une cause
     * @param paramEnableSuppression Boolean pour indiquer la suppresion
     * @param paramWritableStackTrace boolean pour indiquer l'écriture des traces.
     */
    public QualiteException(String paramMessage, Throwable paramCause,
            boolean paramEnableSuppression, boolean paramWritableStackTrace) {
        super(paramMessage, paramCause, paramEnableSuppression, paramWritableStackTrace);
    }

    /**
     * @param paramMessage Un message
     * @param paramCause Une cause
     */
    public QualiteException(String paramMessage, Throwable paramCause) {
        super(paramMessage, paramCause);
    }

    /**
     * @param paramMessage Un message
     */
    public QualiteException(String paramMessage) {
        super(paramMessage);
    }

    /**
     * @param paramCause une Cause
     */
    public QualiteException(Throwable paramCause) {
        super(paramCause);
    }
}
